package com.wicket.okrframework.integration.dto;


import com.wicket.okrframework.common.dto.BaseDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;
import java.util.Objects;


@Data
public class UserDto extends BaseDto implements Serializable {

    /**
     * 个人账号:
     */
    @ApiModelProperty("个人账号")
    private String userId;

    /**
     * 用户名:
     */
    @ApiModelProperty("用户名")
    private String userName;

    /**
     * 绑定手机:
     */
    @ApiModelProperty("绑定手机")
    private String phone;

    /**
     * 手机激活状态:
     */
    @ApiModelProperty("手机激活状态")
    private String passByPhone;

    /**
     * 注册时间:
     */
    @ApiModelProperty("注册时间")
    private Date regTime;

    /**
     * 最后登录ip:
     */
    @ApiModelProperty("最后登录ip")
    private String lastLoginIp;

    /**
     * 最后登录时间:
     */
    @ApiModelProperty("最后登录时间")
    private Date lastLoginTime;

    /**
     * 设备:
     */
    @ApiModelProperty("设备")
    private String devName;

    /**
     * 来源渠道:
     */
    @ApiModelProperty("来源渠道")
    private String sourceCode;

    /**
     * 是否失效:
     */
    @ApiModelProperty("是否失效")
    private String isInvalid;

    /**
     * 邀请人账号:
     */
    @ApiModelProperty("邀请人账号")
    private String inviteUserId;

    /**
     * 创建于空间ID:
     */
    @ApiModelProperty("创建于空间ID")
    private String spaceId;

    /**
     * 创建于联盟应用ID:
     */
    @ApiModelProperty("创建于联盟应用ID")
    private String appId;

    /**
     * 真实头像:
     */
    @ApiModelProperty("真实头像")
    private String userFace;

    /**
     * 真实姓名:
     */
    @ApiModelProperty("真实姓名")
    private String idCardName;

    /**
     * 用户昵称:
     */
    @ApiModelProperty("用户昵称")
    private String nickName;

    /**
     * 个人简介:
     */
    @ApiModelProperty("个人简介")
    private String userIntro;

    /**
     * 用户性别:
     */
    @ApiModelProperty("用户性别")
    private String sex;

    /**
     * 出生日期:
     */
    @ApiModelProperty("出生日期")
    private Date birthday;

    /**
     * 用户城市:
     */
    @ApiModelProperty("用户城市")
    private String city;

    @Override
  public boolean equals(Object o) {
      if (this == o) return true;
      if (o == null || getClass() != o.getClass()) return false;
      if (!super.equals(o)) return false;
      UserDto that = (UserDto) o;
      return  userId == that.userId&&userName == that.userName&&phone == that.phone&&passByPhone == that.passByPhone&&regTime == that.regTime&&lastLoginIp == that.lastLoginIp&&lastLoginTime == that.lastLoginTime&&devName == that.devName&&sourceCode == that.sourceCode&&isInvalid == that.isInvalid&&inviteUserId == that.inviteUserId&&spaceId == that.spaceId&&appId == that.appId&&userFace == that.userFace&&idCardName == that.idCardName&&nickName == that.nickName&&userIntro == that.userIntro&&sex == that.sex&&birthday == that.birthday&&city == that.city;
    }

    @Override
  public int hashCode() {
      return Objects.hash(super.hashCode(), userId,userName,phone,passByPhone,regTime,lastLoginIp,lastLoginTime,devName,sourceCode,isInvalid,inviteUserId,spaceId,appId,userFace,idCardName,nickName,userIntro,sex,birthday,city);
    }

}
